import request from '@/config/axios'

// BPM 流程定义的信息 VO
export interface ProcessDefinitionInfoVO {
  id: string // 编号
  key: string // 流程定义的标识
  name: string // 流程定义的名称
  category: string // 流程定义的分类
  version: number // 流程定义的版本
  suspended: boolean // 流程定义是否挂起
  modelId?: string // 流程模型的编号
  type: number // 流程模型的类型
  icon: string // 图标
  description: string // 描述
  formType: number // 表单类型
  formId: number // 表单编号
  formConf: string // 表单的配置
  formFields: string // 表单项的数组
  formCustomCreatePath: string // 自定义表单的提交路径
  formCustomViewPath: string // 自定义表单的查看路径
  sort?: number // 排序值
  visible: boolean // 是否可见
  startUserIds: string[] // 可发起用户编号数组
  manageUserIds: string[] // 可管理用户编号数组
  allowCancelRunningProcess: boolean // 是否允许撤销审批中的申请
  processIdRule: any // 流程 ID 规则
  autoApprovalType: number // 自动去重类型
  titleSetting: any // 标题设置
  summarySetting: any // 摘要设置
  processBeforeTriggerSetting: any
  processAfterTriggerSetting: any

  deploymentTime: string
  categoryName: string
  formName: string
  bpmnXml: string
}

export const ProcessDefinitionApi = {
  // 获取BPM流程定义分页
  getProcessDefinitionPage: async (params: PageParam) => {
    return await request.get({ url: '/bpm/process-definition/page', params })
  },

  // 获取BPM流程定义详情
  getProcessDefinition: async (id?: string, key?: string) => {
    return await request.get({ url: '/bpm/process-definition/get', params: { id, key } })
  },

  // 获取BPM流程定义列表
  getProcessDefinitionList: async (status: number) => {
    return await request.get({ url: '/bpm/process-definition/list', params: { status } })
  },

  // 获取BPM流程定义简要列表
  getProcessDefinitionSimpleList: async () => {
    return await request.get({ url: '/bpm/process-definition/simple-list' })
  }
}
